const mongoose =  require('mongoose')

const schema = new mongoose.Schema({
    // 表中字段和类型
    name: {type: String},
    parent: {type: mongoose.SchemaTypes.ObjectId, ref: 'Category'}
})
// virtual: 虚拟属性 不会保存到数据库中
schema.virtual('children', {
    // 内键 schema对应的模型Category的_id
    localField: '_id',
    // 外键 关联模型Category的parent字段
    foreignField: 'parent',
    // 是否只查询一条数据
    justOne: false,
    // 关联的数据模型
    ref: 'Category'
})
schema.virtual('newsList', {
    // 内键 schema对应的模型Category的_id
    localField: '_id',
    // 外键 关联模型Category的parent字段
    foreignField: 'categories',
    // 是否只查询一条数据
    justOne: false,
    // 关联的数据模型
    ref: 'Article'
})

// 需要在哪里使用数据 就在哪里导入
// 第三个参数是: 集合名字 默认是数据模型的小写加上复数形式
module.exports =  mongoose.model('Category', schema)